package com.repair.api.order.service;

import com.repair.api.comment.request.OrderCommRequest;
import com.repair.api.comment.response.CommentOrderResponse;
import com.repair.api.order.request.OrderAddGrabPoolRequest;
import com.repair.api.order.request.OrderAssignRequest;
import com.repair.api.order.request.OrderQueryPageRequest;
import com.repair.api.order.request.OrderQueryRequest;
import com.repair.api.order.request.param.OrderAssignParam;
import com.repair.api.order.request.param.OrderQueryParam;
import com.repair.api.order.response.OrderAddGrabPoolResponse;
import com.repair.api.order.response.OrderAssignResponse;
import com.repair.api.order.response.OrderQueryResponse;
import com.repair.api.order.response.vo.OrderVO;
import com.repair.base.response.PageResponse;

/**
 * @author chunyu
 * @since 2024/10/19,13:47
 */
public interface OrderFacadeService {

    CommentOrderResponse<String> commentOrder(OrderCommRequest orderCommRequest);

    /**
     * 查询全部订单
     * @param request 查询参数
     */
    PageResponse<OrderVO> getAllOrders(OrderQueryPageRequest<OrderQueryParam> request);

    /**
     * 管理员查询订单
     * @param request 查询参数
     */
    OrderQueryResponse<OrderVO> getOrderInfoByAdmin(OrderQueryRequest request);

    /**
     * 给师傅派单
     * @param request 派单参数
     */
    OrderAssignResponse<Boolean> assignOrderToWorker(OrderAssignRequest<OrderAssignParam> request);

    /**
     * 入抢单池
     * @param request 订单号
     */
    OrderAddGrabPoolResponse<Boolean> addOrderToGrabPool(OrderAddGrabPoolRequest request);

}
